Systems and methods for identifying and suggesting emoticons

ABSTRACT

Various embodiments provide a method that comprises receiving a set of segments from a text field, analyzing the set of segments to determine at least one of a target subtext or a target meaning associated with the set of segments, and identifying a set of candidate emoticons where each candidate emoticon in the set of candidate emoticons has an association between the candidate emoticon and at least one of the target subtext or the target meaning. The method may further comprise presenting the set of candidate emoticons for entry selection at a current position of an input cursor, receiving an entry selection for a set of selected emoticons from the set of candidate emoticons, and inserting the set of selected emoticons into the text field at the current position of the input cursor.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/563,004, filed on Dec. 8, 2014, now U.S. Pat. No. 9,075,794, which isa continuation of U.S. application Ser. No. 14/243,042, filed on Apr. 2,2014, now U.S. Pat. No. 8,909,513, which is a continuation of U.S.application Ser. No. 13/330,357, filed on Dec. 19, 2011, the disclosuresof which are hereby incorporated by reference in their entireties.

FIELD OF THE INVENTION(S)

The invention(s) described herein generally relate to emoticons. Moreparticularly, the invention(s) relate to systems and methods foridentifying and suggesting emoticons during various activities on acomputing device.

DESCRIPTION OF THE RELATED ART

Originally, emoticons were facial expressions represented by characters(e.g., ASCII characters) commonly found on computer keyboards, such asletters, numbers, and symbols. These original emoticons, once placed inan electronic message or an electronic posting by an author (e.g.,electronic bulletin board), were meant to convey the author's mood or toconvey/enhance the overall sentiment of the message or the posting. Inbeginning, these emoticons were limited to expressing moods, such ashappiness, anger, sadness, and indifference. Gradually, however, the useof these character-based emoticons characters (hereafter, “characteremoticons”) expanded to conveying meanings and messages.

Eventually, emoticons expanded further in type, availability, and usage.Today, emoticons include character emoticons and emoticons representedby graphical images (hereafter, “graphical emoticons”). With theavailability of graphical emoticons, a user can depict a greater numberof moods, meanings and messages not once possible with characteremoticons alone. Both character and graphical emoticons are nowavailable for use through a variety of digital devices (e.g., mobiletelecommunication devices, and tablets), and are used in a variety ofcomputing activities, especially with respect to the Internet. Forexample, graphical emoticons are commonly available for use whendrafting personal e-mails, when posting messages on the Internet (e.g.,on social networking site or a web forum), and when messaging betweenmobile devices. Generally, as a user performs a computing activityapplicable to emoticons, the user may access emoticons through a menu orlibrary from which they can browse and select emoticons for use in thecomputing activity.

Unfortunately, with the emergence of graphical emoticons, the number ofemoticons a user can choose from has grown vastly. There are graphicalemoticons available for almost every subject matter imaginable. Due tothe expansion in number, usage, availability, and variety of emoticons,it can be quite time consuming, and sometimes overwhelming, for users tobrowse through and select appropriate emoticons for a given context whenparticipating in emoticon-applicable computing activities.

SUMMARY OF EMBODIMENTS

Various embodiments discussed herein provide systems and methods foridentifying and suggesting emoticons for segments of texts. Some systemsand methods may be utilized during a user activity on a computing deviceincluding, without limitation, instant messaging, participating inonline chat rooms, drafting e-mails, posting web blogs, or posting toweb forums.

An exemplary method comprises receiving a set of segments from a textfield, analyzing the set of segments to determine at least one of atarget subtext or a target meaning associated with the set of segments,and identifying a set of candidate emoticons where each candidateemoticon in the set of candidate emoticons has an association betweenthe candidate emoticon and at least one of the target subtext or thetarget meaning. The method may further comprise presenting the set ofcandidate emoticons for entry selection at a current position of aninput cursor, receiving an entry selection for a set of selectedemoticons from the set of candidate emoticons, and inserting the set ofselected emoticons into the text field at the current position of theinput cursor. The set of segments may comprise one or more segments ofinterest selected relative to a current position of an input cursor inthe text field, the set of candidate emoticons may comprise one or morecandidate emoticons, and the set of selected emoticons may comprise oneor more selected emoticons. Depending on the embodiment, analyzing theset of segments may comprise semantic analysis of the set of segments.

For some embodiments, each association may comprise a statistical usageof the candidate emoticon with at least one of the target subtext or thetarget meaning. Additionally, for some embodiments, the method mayfurther comprise updating the statistical usage of the candidateemoticons based on the entry selection for the set of selectedemoticons. Depending on the embodiment, the statistical usage may bebased on usage by a single user or by a plurality of users.

Presenting the set of emoticons for entry selection may involvedisplaying the emoticon, for entry selection, at or near the currentposition of the input cursor. Presenting the set of candidate emoticonsfor entry selection may comprise displaying the set of candidateemoticons, for entry selection, on a physical input device or a virtualinput device (e.g., on-screen keyboard, or a projected keyboard),wherein the physical input device and the displayed input interface areconfigured to execute the entry selection. Depending on the embodiment,the virtual input device may be displayed by a display device that isalso displaying the text field. Additionally, the virtual input devicemay be displayed in close proximity to the text field.

In some embodiments, the method may further comprise identifying the setof segments using syntactical analysis. Each segment of interest maycomprise at least one of a word, a sentence fragment, a sentence, aphrase, or a passage that precedes or follows a current position of aninput cursor.

In particular embodiments, identifying the set of candidate emoticonsmay be further based on at least a user preference, user-relatedinformation, or recipient-related information. The user-relatedinformation may include a user interest, a user ethnicity, a userreligion, a user geographic location, a user age, a user relationalstatus, and a user occupation. The recipient-related information mayinclude a recipient's relation to a user, a recipient interest, arecipient ethnicity, a recipient religion, a recipient geographiclocation, a recipient age, a recipient relational status, and arecipient occupation.

An exemplary system comprises a processor, a display module, an inputmodule, a segment analysis module, an emoticon search module, anemoticon suggestion module, and an emoticon selection module. Thedisplay module may be configured to display a text field and one or moresegments entered into the text field.

The input module may be configured to receive segment input from a userand to enter the segment input into the text field at an input cursor.The segment analysis module may be configured to receive a set ofsegments from the text field, wherein the set of segments comprises oneor more segments of interest selected relative to a current position ofthe input cursor in the text field. The segment analysis module may befurther configured to use the processor to analyze the set of segmentsto determine at least one of a target subtext or a target meaningassociated with the set of segments. The emoticon search module may beconfigured to identify a set of candidate emoticons, wherein eachcandidate emoticon in the set of candidate emoticons has an associationbetween the candidate emoticon and at least one of the target subtext orthe target meaning, and wherein the set of candidate emoticons comprisesone or more candidate emoticons. The emoticon suggestion module may beconfigured to present the set of candidate emoticons through the displaymodule for entry selection at the current position of the input cursor.The emoticon selection module may be configured to receive from theinput module an entry selection for a set of selected emoticons from theset of candidate emoticons, wherein the set of selected emoticonscomprises one or more selected emoticons. The emoticon selection modulemay be further configured to insert the set of selected emoticons intothe text field at the current position of the input cursor.

In some embodiments, the system further comprises an emoticon datastorecomprising one or more emoticons capable of entry into the text field,and wherein the emoticon search module is further configured to identifya set of candidate emoticons on the emoticon datastore.

In various embodiments, each association may comprise a statisticalusage of the candidate emoticon with at least one of the target subtextor the target meaning, and the emoticon selection module may be furtherconfigured to update the statistical usage of the candidate emoticonsbased on the entry selection for the set of selected emoticons.

In some embodiments, presenting the set of emoticons through the displaymodule for entry selection may comprise displaying the emoticon, forentry selection, at or near the current position of the input cursor.The input module may comprise a physical input device or a virtual inputdevice, wherein the physical input device and the virtual inputinterface are configured to execute the entry selection.

Other features and aspects of some embodiments will become apparent fromthe following detailed description, taken in conjunction with theaccompanying drawings, which illustrate, by way of example, the featuresin accordance with various embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments are described in detail with reference to thefollowing figures. The drawings are provided for purposes ofillustration only and merely depict some example embodiments. Thesedrawings are provided to facilitate the reader's understanding of thevarious embodiments and shall not be considered limiting of the breadth,scope, or applicability of embodiments.

FIG. 1 depicts an example of an environment in which various embodimentsmay be utilized.

FIG. 2 is a block diagram of an exemplary emoticon suggestion system inaccordance with some embodiments.

FIG. 3 is a flow chart of an exemplary method for identifying andsuggesting an emoticon in accordance with some embodiments.

FIG. 4 is a block diagram of an exemplary emoticon suggesting systemusing a client-server architecture in accordance with some embodiments.

FIG. 5 depicts a user interface of a messaging application, where themessaging application utilizes an embodiment.

FIG. 6 depicts a user-interface of a messaging application, where themessaging application utilizes an embodiment.

FIG. 7 is a block diagram of an exemplary digital device.

DETAILED DESCRIPTION OF THE EMBODIMENTS

A number of embodiments described herein relate to systems and methodsthat identify and suggest emoticons during a variety of activities on acomputing device involving typing characters into a text field. Varioussystems and methods may identify the emoticon by analyzing a context ofsegments present in the text field and identifying one or more candidateemoticons available for entry into the text field based on that context.Subsequently, the user may select one or more emoticons from thecandidate emoticons and the selected emoticons may be entered into thetext field. Optionally, the user could choose to ignore the emoticonsuggestion(s) entirely, and continue with their activities on thecomputing device. As used in this description, a “segment” may compriseone or more characters that represent a word, a phrase, a sentencefragment, a sentence, or a passage.

Depending on the embodiment, analysis of the context of segments presentin the text field may involve determining a subtext or a meaningrelating to those segments, which may require semantic analysis of thosesegments. Also, as described herein, the association between aparticular candidate emoticon and a particular subtext or meaning may bebased on (past) statistical usage of the particular candidate emoticonwith the particular subtext or meaning. In various embodiments, suchemoticon usage may be based on a user's personal usage of the particularemoticon with the particular subtext or meaning (e.g., user's selectionof suggested emoticons in the particular subtext or meaning), or may bebased on a community's usage of the particular emoticon with theparticular subtext or meaning (e.g., observed usage of certain emoticonsin postings on a social network by a community of users).

FIG. 1 depicts an example of an environment 100 in which variousembodiments may be utilized. The environment 100 comprises a tabletcomputing device 104, a local emoticon datastore 102 coupled to thetablet computing device 104, a smartphone computing device 108, a localemoticon datastore 106 coupled to the smartphone computing device 108, adesktop computing device 112, a local emoticon datastore 114 coupled tothe desktop computing device 112, an emoticon suggestion server 116, anda local emoticon datastore 118 coupled to the emoticon suggestion server116. The environment 100 further comprises a communication network 110over which the tablet computing device 104, the smartphone computingdevice 108, the desktop computing device 112, and the emoticonsuggestion server 116 communicate. The tablet computing device 104, thesmartphone computing device 108, the desktop computing device 112, andthe emoticon suggestion server 116 are examples of digital deviceshaving a processor and memory. Other exemplary digital devices withwhich various embodiments may be utilized include laptops, netbooks,notebooks, media devices, music devices personal digital assistants(PDAs), or the like. Exemplary digital devices are further described inFIG. 7.

In accordance with some embodiments, the tablet computing device 104,the smartphone computing device 108, and the desktop computing device112 may be exemplary digital devices that utilize systems and methodsfor identifying and suggesting emoticons for entry. For instance, suchcomputing devices may utilize certain embodiments to identify andsuggest emoticons when a user is using an instant messaging applicationon such computing devices, or when the user is posting a message on awebsite forum through such computing devices. Those of ordinary skill inthe art will appreciate that other digital devices could be utilized inconjunction with various embodiments described herein.

In some embodiments, the emoticon suggestion server 116 may facilitatethe identification and suggestion of an emoticon for a user at a digitaldevice. As later described herein, the emoticon suggestion server 116may determine the context of a segment, may identify one or morecandidate emoticons based on a determined context, may suggest one ormore candidate emoticons to a digital device, or may perform somecombination thereof. For various embodiments, the emoticon suggestionserver 116 may be a service operating on a server that hosts an Internetservice, where the emoticon suggestion server 116 provides emoticonsuggestion functionality to the Internet service. For instance, theemoticon suggestion server 116 may be a service operating on a webserver that is hosting a website (e.g., a website forum or a socialnetworking website) that is being serviced by the emoticon suggestionserver 116 (i.e., that is being provided emoticon suggestions by theemoticon suggestion server 116).

Depending on the embodiment, various operations and components foridentifying and suggesting an emoticon may be isolated to the digitaldevice that utilizes the emoticon suggestions, or may be distributed onvarying levels amongst two or more digital devices. For example, asystem or method for identifying, suggesting, and entering an emoticonwhen drafting an e-mail on the smartphone computing device 108 may beentirely embedded in an e-mail application that is stored and operatedon the smartphone computing device 108. In an alternative example, whileusing the tablet computing device 104 to prepare a message post for awebsite forum, a system or method for identifying, suggesting, andentering an emoticon may utilize the tablet computing device 104 todetermine the context of the message as currently prepared, utilize theemoticon suggestion server 116 to identify one or more candidateemoticons for use in the message as currently prepared, and then utilizethe tablet computing device 104 to present the candidate emoticons assuggested emoticons.

The emoticon suggestion server 116 may utilize the remote emoticondatastore 118 during the identification and suggestion of emoticons todigital devices. For certain embodiments, the remote emoticon datastore118 may comprise a library of emoticons available for suggestion by theemoticon suggestion server 116, and associations between emoticons inthe library and contexts (e.g., subtexts and meanings). For example, theremote emoticon datastore 118 may comprise a library of “happy face”emoticons, and associations between the “happy face” emoticons and ahappy context. In another example, the remote emoticon datastore 118 maycomprise a library of “San Francisco” emoticons, and associationsbetween the “San Francisco” emoticons and contexts that explicitly orimplicitly refers to the city of San Francisco. For some embodiments,the remote emoticon datastore 118 may comprise two or more associationsbetween a given emoticon and a given context (e.g., subtext or meaning).For example, the remote emoticon datastore 118 may comprise a library of“frowning face” emoticons, associations between the “frowning face”emoticons and a sad context, and associations between the “frowningface” emoticons and a displeased context. Those skilled in the art wouldappreciate that a variety of emoticon libraries and a variety ofassociation between emoticons and contexts can be stored on the remoteemoticon datastore 118.

Depending on the embodiment, the library of emoticons may compriseemoticons that are accessible by any user or accessible by a limitedgroup of users restricted access (e.g., based on a premium, or onlyaccessible to certain groups), user-customized or user-uploadedemoticons, or emoticons that are user favorites. In addition tocharacter and graphical emoticons that convey a mood or emotion from anauthor, emoticons used in various embodiments may include those thatrelate to interests, hobbies, geographic locations, events, holidays,seasons, weather, and the like. Emoticons stored on the emoticonsuggestion datastore 118 may include character emoticons, graphicalemoticons, graphically animated emoticons, and emoticons accompanied bysound. For some embodiments, the remote emoticon datastore 118 mayfurther comprise user preferences, user information or recipientinformation, which may be utilized the embodiments when identifyingemoticons suitable for suggestion. For example, the remote emoticondatastore 118 may store a user preference that causes an embodiment tosuggest user-defined or user-uploaded emoticons before suggestingemoticons generally available to any user. In another example, theremote emoticon datastore 118 may store a user preference that causes anembodiment to automatically insert the first emoticon suggested to theuser by the embodiment, or to automatically insert the suggestedemoticon having the highest usage in a given context.

In some embodiments, the tablet computing device 104, the smartphonecomputing device 108, and the desktop computing device 112 may each becoupled to a separate, local emoticon datastore capable of storinguser-customized emoticons, a user's favorite or preferred emoticons,associations between emoticons stored on the local emoticon and contexts(e.g., subtext or meaning), user preferences with respect to identifyingand suggestion emoticons, user-related information, or recipient-relatedinformation. For instance, the tablet computing device 104 may becoupled to the local emoticon datastore 102, the smartphone computingdevice 108 may be coupled to the local emoticon datastore 106 coupled,and the desktop computing device 112 may be coupled to the localemoticon datastore 114.

Additionally, each of the local emoticon datastores 102, 106, and 114may be utilized by their respective computing device to locally cachepreviously suggested emoticons or suggested emoticons previouslyselected by a user. In doing so, some embodiments can repeatedly suggestthe same emoticons for a commonly occurring contexts while limiting thenumber of times the emoticon suggestions server 116 is queried for thesuggested emoticons. For some embodiments, the emoticons cached in thelocal emoticon datastores 102, 106, and 114 may have an expiration time,after which the cached emoticons are invalidated or purged. Once anemoticon item in the cache has expired, some embodiments resume queryingthe emoticon suggestion server 116 for suggested emoticons.

FIG. 2 is a block diagram of an exemplary emoticon suggestion system 200in accordance with some embodiments. The emoticon suggestion system 200may comprise a display module 202, an input module 204, a segmentanalysis module 206, an emoticon search module 208, an emoticonsuggestion module 210, an emoticon selection module 212, and an emoticondatastore 214. In some embodiments, the emoticon suggestion system 200may further comprise memory and at least one processor, which facilitateoperation of various modules contained in the emoticon suggestion system200.

The display module 202 may display an input field, such as a text fieldor a text box, into which a user can input one or more segments,character emoticons, or graphical emoticons using the input module 204.Typically, as segments and emoticons are entered into the input fieldthey appear in the input field. As noted herein, a “segment” maycomprise one or more characters that represent a word, a phrase, asentence fragment, a sentence, or a passage. As part of the input field,the display module 202 may display an input cursor, which indicateswhere a user's character inputs will be next entered or where anemoticon may be next entered.

As noted herein, various embodiments may suggest emoticons based on thecurrent position of the input cursor within the input field, the presentsegment content of the input, user-related information,recipient-related information, user preferences, or some combinationthereof. Generally, once one or more candidate emoticons have beenidentified for suggestion to the user (e.g., based on the segmentcontent of the input field), the candidate emoticons may be suggested tothe user via the display module 202. Specifically, the display module202 may, for the user's selection, display the candidate emoticons at ornear the current position of the input cursor in the input field.Depending on the embodiment, the display module 202 may display thecandidate emoticons at or near the input field via a callout box.

For some embodiments, the display module 202 may form part of a digitaldevice (e.g., video display, or video projector) that may be responsiblefor displaying all graphical output from the digital device. In someembodiments, the display module 202 may display the input field as partof a graphical user interface (GUI). For instance, the input field maybe a graphical component of an application operating on a digital device(e.g., e-mail client, or an instant messaging application), or may be agraphical representation of a document viewable or editable through anapplication operating on the digital device (e.g., a text field of a webpage shown through a web browser, or a document shown through a wordprocessor). Those of ordinary skill in the art will appreciate that theinput field may vary in type and size from embodiment to embodiment.

The input module 204 may receive character input from a user and entersuch character input into the input field as received. As characterinput is entered into the input field, the display module 202 may updatethe input field with the character input. Additionally, the input module204 may further receive entry selections for emoticons suggested, inaccordance with various embodiments. Generally, upon selection, theselected emoticons may be inserted at the current position of the inputcursor in the input field. Depending on the embodiment, the input modulemay comprise a physical input device that is externally coupled to adigital device or that is physical embedded into the digital device.Examples of physical input devices can include, without limitation,keyboards, trackpads or computer mice. In some embodiments, the inputmodule may comprise a virtual input device, such as a laser-projectedkeyboard or an on-screen keyboard, which may be provided (i.e.,displayed) to the user through the display module 202. In variousembodiments, as virtual input devices are employed, such virtual inputdevices may be displayed at or near the input field to which segmentswill be inputted.

As further described in FIG. 6, in some embodiments, suggested emoticonsmay be presented to the user through the input module 204. For example,where input module 204 comprises a physical keyboard, the physicalkeyboard may be configured to display suggested emoticons through thephysical keyboard. For some embodiments, the physical keyboard maydisplay suggested emoticons by way of keys or buttons that compriseembedded displays (e.g., LCD buttons), or by way of a display embeddedon a surface of the physical keyboard (e.g., at the top of thekeyboard). Depending on the embodiment, the suggested emoticons may bedisplayed through the physical keyboard in color or in grayscale. As thesuggested emoticons are displayed through the physical keyboard, theuser may select one or more of those suggested emoticons through keys orbuttons of the physical keyboard.

In another example, where the input module 204 comprises an on-screenkeyboard (like those found on some tablet computing device andsmartphone computing devices), the appearance of the on-screen keyboardmay be reconfigured to display the suggested emoticons through theon-screen keyboard. For some embodiments, the appearance of theon-screen keyboard may be reconfigured so that certain buttons of theon-screen keyboard are replaced with suggested emoticons buttons, or sothat the on-screen keyboard is augmented with additional suggestedemoticon buttons. Once presented to through the on-screen keyboard, thesuggested emoticon buttons may be used by a user to select from the oneor more suggested emoticons.

The segment analysis module 206 may analyze one or more segments presentin the input field and determine a context for the segments analyzed. Asdescribed herein, the context determined by the segment analysis module206 may be subsequently utilized when identifying candidate emoticons tobe suggested to the user. In various embodiments, the segment analysismodule 206 may analyze only segments of interest from the input fieldwhen determining the context of segments in the input field.

In some embodiments, the segment analysis module 206 first identifiessegments of interest in the input field, and then analyzes thosesegments of interest to determine a context. Generally, the segments ofinterest are identified in relation to a current position of an inputcursor in the input field. Additionally for some embodiments, thesegment analysis module 206 may perform syntactical analysis of thesegments currently present in the input field when identifying segmentsof interest.

Depending on the embodiment, the segment analysis module 206 mayidentify the segments of interest based on conditional ornon-conditional rules that guide the segment of interest identificationprocess. An exemplary rule for identifying segments of interest mayinclude identifying the sentence fragment or sentence immediatelypreceding the current position of the input cursor in the input field asa segment of interest. Another exemplary rule for identifying segmentsof interest may include identifying the sentence fragment or sentenceimmediately following the current position of the input cursor in theinput field as a segment of interest. For some embodiments, the rulesmay be utilized in conjunction with the syntactical analysis performedby the segment analysis module 206 to determine the segments ofinterest.

Where more than one segment of interest is identified, the segmentanalysis module 206 may analyze the context of each of the segments ofinterest, or may analyze the context of all but the least importantsegments of interest (e.g., based on a weight system, where certainsegments of interest are of higher importance than others). In addition,one or more rules may determine which of the segments of interestsshould be analyzed when two or more segments of interest are identified.

The segment analysis module 206 may determine two or more contexts fromthe segments of interest. In such cases, the emoticon suggestion system200 may search for candidate emoticons associated with all of thedetermined contexts, or may only search for candidate emoticons thatmatch one or more of the most important contexts (e.g., determined basedon rules).

To determine a context of one or more segments of interest, the segmentanalysis module 206 may semantically analyze the segments of interestpresent in the input field. Those of skill in the art will appreciatethat the semantic analysis of segments may be performed in accordancewith one or more techniques known in the art. When analyzing the contextof one or more segments of interest, the segment analysis module 206 maydetermine a subtext or a meaning for the segments of interest. Based onthe subtext or meaning identified for the segments of interest, theemoticon suggestion system 200 may identify one or more candidateemoticons for suggestion. The subtext of a segment of the interest mayidentify a mood or an emotion for that segment of interest. Examplesubtexts for segments of interest may include, without limitation,happiness, sadness, indifference, anger, resentment, contrition, orexcitement. The meaning for segments of the interest may identify anexplicit meaning for segments of interest. For example, where a segmentof interest recites “I just got a new job!,” the segment analysis module206 may identify the meaning for the segment of interest as “new job.”

It should be noted that for some embodiments, the segment analysismodule 206 may identify and analyze segments of interest in at or nearreal-time as the user adds characters or emoticons to or removescharacters or emoticons from the input field using the input module 204.

The emoticon search module 208 may search for one or more candidateemoticons based on an identified context (e.g., subtext or meaning) of asegment of interest. In some embodiments, the emoticon search module 208may search the emoticon datastore 214 for emoticons associated with theone or more contexts identified by the emoticon suggestion system 200.As described herein, the emoticon datastore 214 may comprise emoticonavailable for entry into the input field, and associations between anemoticon and one or more contexts.

As noted herein, the association between a given emoticon and a givencontexts may comprise statistical usage of the given emoticon with thatgiven context. The strength of the association between the givenemoticon and the given context may be based on such statistical usage.Additionally, the statistical usage may be based on the user's own usageof the given emoticon with the given content, or may be based on usageof the given emoticon with the given content by a community of users(e.g., usage of a given emoticon in a given context on a socialnetworking website).

Generally, the more usage of a given emoticon with a given context, thestronger the association between that given emoticon and that givencontext. For some embodiments, the strength of the association betweenan emoticon and a context may indicate the confidence in suggesting theemoticon for that context. The strength of the association may also beused to prioritize and present the one or more candidate emoticons fromthe highest strength to the lowest strength.

In some embodiments, the search for one or more candidate emoticons bythe emoticon search engine module 208 may consider the strength of theassociation between the emoticon and the context. For example, theemoticon search engine module 208 may only identify an emoticon as acandidate emoticon if the strength of the association between theemoticon and the target context meets or exceeds a predeterminedthreshold. Additionally, the emoticon search engine module 208 may onlyidentify an emoticon as a candidate emoticon when the strength of theassociation between the emoticon and the target context meets or exceedsa threshold relative to other, potential candidate emoticons.

As noted herein, in various embodiments, the emoticon search module 208may further narrow the search for candidate emoticons by utilizing userpreferences, user-related information, recipient-related information, orsome combination thereof. Examples of user preferences may include,without limitation, a preference to suggest user-customized emoticonsbefore other types of emoticons, and a preference to ignore certaincategories of emoticons (e.g., suggest only emoticons that are ageappropriate with respect to the user). Example of recipient-relatedinformation may include, without limitation, a user interest, a userethnicity, a user religion, a user geographic location, a user age, auser relational status, and a user occupation. Example of user-relatedinformation may include, without limitation, a recipient's relation to auser, a recipient interest, a recipient ethnicity, a recipient religion,a recipient geographic location, a recipient age, a recipient relationalstatus, and a recipient occupation. In certain embodiments, whensearching for one or more candidate emoticons, the emoticon searchmodule 208 may further consider the input field's limitations inreceiving character or graphical emoticons and search for candidateemoticons accordingly.

The emoticon suggestion module 210 may receive the one or more candidateemoticons located based on an identified context of a segment ofinterest, and present the one or more candidate emoticons to the userfor selection. As noted herein, in some embodiments, the emoticonsuggestion module 210 may use the display module 202 to display forentry selection the one or more candidate emoticons at or near thecurrent position of the input cursor in the input field. As also notedherein, in various embodiments, the emoticon suggestion module 210 mayuse the input module 202 to display for entry selection the one or morecandidate emoticons through a physical input device or a virtual inputdevice.

The emoticon selection module 212 may receive from the user an entryselection for one or more candidate emoticons suggested to the user. Inparticular embodiments, the emoticon selection module 212 may receivethe entry selection for the one or more candidate emoticons through theinput module 204, and the emoticon selection module 212 may enter theone or more selected emoticons into the input field. As noted herein,the emoticon selection module 212 may enter the one or more selectedemoticons at the current position of the input cursor. For someembodiments, the emoticon selection module 212 may enter the one or moreselected emoticons into the input field by replacing segments orsegments of interest within the input field with the one or moreselected emoticons. Additionally, some embodiments may enable the userto set the emoticon selection module 212 (e.g., using a user preference)such that the module 212 auto-selects suggested emoticons based oncertain guidelines. For instance, the user may configure the emoticonselection module 212 such that the first suggested emoticon is selectedwhen an emoticon suggestion is made.

In some embodiments, where associations between emoticons and contextscomprise statistical usage of such emoticons with such contexts, theemoticon selection module 212 may update the statistical usageinformation based on the entry selection received from the user. Inparticular, the emoticon selection module 212 may receive the entryselection of one or more candidate emoticons for a given context, andupdate the statistical usage information stored between the selectedcandidate emoticons and their respective contexts of usage. Depending onthe embodiment, the emoticon selection module 212 may update thestatistical usage information on the emoticon datastore 214.

The emoticon datastore 214 may comprise a library of emoticons availablefor suggestion by the emoticon suggestion system 200, and associationsbetween emoticons in the library and contexts (e.g., subtexts andmeanings). The emoticon search module 208 may access the emoticondatastore 214 when searching for one or more candidate emoticons thatare associated with one or more particular contexts. As noted herein,for some embodiments, the emoticon datastore 214 may comprise two ormore associations between a given emoticon and a given context (e.g.,subtext or meaning). Additionally, the association between a givenemoticon and a given context may comprise statistical usage of the givenemoticon with the given context. Such statistical usage may reflect thestrength of the association between the emoticon and the context.

Emoticons stored on the emoticon datastore 214 may include characteremoticons, graphical emoticons, graphically animated emoticons, andemoticons accompanied by sound. For some embodiments, the emoticondatastore 214 may further comprise user preferences, user information orrecipient information, which may be utilized the embodiments whenidentifying emoticons suitable for suggestion. For example, the emoticondatastore 214 may store a user preference that causes an embodiment tosuggest user-defined or user-uploaded emoticons before suggestingemoticons generally available to any user. In another example, theemoticon datastore 214 may store a user preference that causes anembodiment to automatically insert the first emoticon suggested to theuser by the embodiment, or to automatically insert the suggestedemoticon having the highest usage in a given context.

Those skilled in the art would appreciate that a variety of emoticonlibraries and a variety of association between emoticons and contextsmay be stored on the emoticon datastore 214.

It will be appreciated that a “module” may comprise software, hardware,firmware, and/or circuitry. In one example one or more software programscomprising instructions capable of being executable by a processor mayperform one or more of the functions of the modules described herein. Inanother example, circuitry may perform the same or similar functions.Alternative embodiments may comprise more, less, or functionallyequivalent modules and still be within the scope of present embodiments.For example, the functions of the various modules may be combined ordivided differently. For example, the functions of various modules maybe distributed amongst one or more modules residing at an emoticonsuggestion server and one or more modules reside at an emoticonsuggestion client.

FIG. 3 is a flow chart of an exemplary method 300 for identifying andsuggesting an emoticon in accordance with some embodiments. In step 302,the segment analysis module 206 may receive one or more segments from aninput field, which may be displayed through the display module 202. Asnoted herein, upon receiving the one or more segments, the segmentanalysis module 206 may identify segments of interest for contextanalysis purposes.

In step 304, the segment analysis module 206 may analyze the one or moresegments to determine one or more target subtexts or one or more targetmeanings of the segments. The target subtexts and the target meanings ofthe segments provide for one or more contexts associated with thesegments. Depending on the embodiment, the segment analysis module 206may analyze only those segments which have been identified as segmentsof interest by the segment analysis module 206.

In step 306, the emoticon search module 208 may identify one or morecandidate emoticons having an association with the one or more targetcontexts or one or more target meanings, which may have been determinedby the segment analysis module 206. In some embodiments, the emoticonsearch module 208 may identify one or more candidate emoticons in theemoticon datastore 214 which have an association with the targetsubtexts or the target meanings. As noted herein, the strength of eachassociation may be based on statistical usage of a given emoticon with agiven context, and such the strength may be taken into consideration asthe emoticon search module 208 identifies one or more candidateemoticons.

In step 308, the emoticon suggestion module 210 may present the one ormore candidate emoticons to a user for entry selection at a currentposition of an input cursor in an input field. As described herein, theinput field and the input cursor therein may be displayed to the userthrough the display module 202. For some embodiments, the emoticonsuggestion module 210 may present the one or more candidate emoticons tothe user for entry selection using display module 202, and may displaythe candidate emoticons at or near the current position of the inputcursor in the input field. Additionally, the emoticon suggestion module210 may present the one or more candidate emoticons to the user forentry selection through one or more input devices of the input module204. For example, the emoticon suggestion module 210 may present the oneor more candidate emoticons to the user through a physical input device,such as a physical keyboard having a display, or through a virtual inputdevice, such as an on-screen keyboard.

In step 310, the emoticon selection module 212 may receive an entryselection from the user for one or more select emoticons from the one ormore candidate emoticons. For some embodiments, the emoticon selectionmodule 212 may receive the entry selection from the input module 204.Additionally, upon receiving the entry selection, the emoticon selectionmodule 212 may update the statistical usage information on the emoticondatastore 214 for the one or more candidate emoticons based on the entryselection, thereby strengthen or weakening the association between thecandidate emoticons and particular contexts.

In step 312, based on the entry selection, the emoticon selection module212 may insert the one or more candidate emoticons into the text fieldat the current position of the input cursor received by the emoticonselection module 212. As noted herein, in some embodiments, entry of thecandidate emoticons into the input field may involve replacing one ormore segments in the input field with the selected emoticons.

FIG. 4 is a block diagram of an exemplary emoticon suggesting system 400using a client-server architecture in accordance with some embodiments.The emoticon suggesting system 400 may comprise an emoticon suggestionclient 402 and an emoticon suggestion server 420. In some embodiments,the emoticon suggestion client 402 may be similar to the digital devicedescribed in FIG. 7, or to the computing devices described in FIG. 1(i.e., tablet computing device 104, the smartphone computing device 108,and the desktop computing device 112), and the emoticon suggestionserver 420 may be similar to the digital device described in FIG. 7, orto the emoticon suggestion server 116 described in FIG. 1. The emoticonsuggestion client 402 and the emoticon suggestion server 420 maycommunicate with one another over a communication network 418.

The emoticon suggestion client 402 may comprise a display module 404, aninput module 406, a segment analysis module 408, an emoticon searchmodule 410, a local emoticon datastore 412, an emoticon suggestionmodule 414, and an emoticon selection module 416. The emoticonsuggestion server 420 may comprise an emoticon search engine 422, and aremote emoticon datastore 424.

At the emoticon suggestion client 402, the display module 404 maydisplay an input field into which a user can input one or more segments,character emoticons, or graphical emoticons using the input module 406.Typically, as segments and emoticons are entered into the input fieldthey appear in the input field. With the input field, the display module404 may display an input cursor in the input field, where the inputcursor indicates where a user's character inputs will be next entered orwhere an emoticon may be next entered.

Various embodiments may suggest emoticons based a number of factorsincluding, for example, the current position of the input cursor withinthe input field, the present segment content of the input, user-relatedinformation, recipient-related information, user preferences, or somecombination thereof. The candidate emoticons, once identified, may besuggested to the user via the display module 404. Specifically, thedisplay module 404 may, for the user's selection, display the candidateemoticons at or near the current position of the input cursor in theinput field. Depending on the embodiment, the display module 404 maydisplay the candidate emoticons at or near the input field via a calloutbox.

Through the display module 404, a digital device, may display allgraphical output from the digital device. In some embodiments, thedisplay module 404 may display the input field as part of a graphicaluser interface (GUI). Depending on the embodiment, the input field maybe a graphical component of an application operating on a digitaldevice, or may be a graphical representation of a document viewable oreditable through an application operating on the digital device. It willbe appreciated by those of ordinary skill in the art that the inputfield may vary in type and size from embodiment to embodiment.

The input module 406 may receive character input from a user and entersuch character input into the input field as received. As characterinput is entered into the input field, the display module 404 may updatethe input field with the character input. Additionally, the input module406 may further receive entry selections for emoticons suggested inaccordance with various embodiments. Generally, upon selection, theselected emoticons may be inserted at the current position of the inputcursor in the input field. As noted herein, the input module maycomprise a physical input device that is externally coupled to a digitaldevice or that is physical embedded into the digital device, or avirtual input device, such as an on-screen keyboard, which may beprovided to the user through the display module 404. In variousembodiments, as virtual input devices are employed, such virtual inputdevices may be displayed at or near the input field to which segmentswill be inputted.

For some embodiments, suggested emoticons may be presented to the userthrough the input module 406. For example, where input module 406comprises a physical keyboard, the physical keyboard may be configuredto display suggested emoticons through the physical keyboard. For someembodiments, the physical keyboard may display suggested emoticons byway of keys or buttons that comprise embedded displays (e.g., LCDbuttons), or by way of a display embedded on a surface of the physicalkeyboard (e.g., at the top of the keyboard). The suggested emoticons maybe displayed through the physical keyboard in color or in grayscale. Asthe suggested emoticons are displayed through the physical keyboard, theuser may select one or more of those suggested emoticons through keys orbuttons of the physical keyboard.

In some embodiments, where the input module 406 comprises an on-screenkeyboard, the appearance of the on-screen keyboard may be reconfiguredto display the suggested emoticons through the on-screen keyboard. Forexample, the appearance of the on-screen keyboard may be reconfigured sothat certain buttons of the on-screen keyboard are replaced withsuggested emoticons buttons, or so that the on-screen keyboard isaugmented with additional suggested emoticon buttons. Once presented tothrough the on-screen keyboard, the suggested emoticon buttons may beused by a user to select from the one or more suggested emoticons.

The segment analysis module 408 may analyze one or more segments presentin the input field and determine a context for the segments analyzed. Asdescribed herein, the context determined by the segment analysis module408 may be subsequently utilized when identifying candidate emoticons tobe suggested to the user. In various embodiments, the segment analysismodule 408 may first identify segments of interest in the input fieldand then only analyze those segments of interest when determining thecontext of segments in the input field.

In some embodiments, the segment analysis module 408 may performsyntactical analysis of the segments currently present in the inputfield when identifying segments of interest. Additionally, the segmentanalysis module 408 may identify the segments of interest based onconditional or non-conditional rules that guide the segment of interestidentification process.

To determine a context of one or more segments of interest, the segmentanalysis module 408 may semantically analyze the segments of interestpresent in the input field. When analyzing the context of one or moresegments of interest, the segment analysis module 408 may determine asubtext or a meaning of the segments of interest. The subtext of asegment of the interest may identify a mood or an emotion for thatsegment of interest. Based on the subtext or meaning identified for thesegments of interest, the emoticon suggestion system 400 may identifyone or more candidate emoticons for suggestion.

It should be noted that for some embodiments, the segment analysismodule 408 may identify and analyze segments of interest in at or nearreal-time as the user adds characters or emoticons to or removescharacters or emoticons from the input field using the input module 408.

The emoticon search module 410 may search for one or more candidateemoticons based on an identified context (e.g., subtext or meaning) of asegment of interest. In some embodiments, the emoticon search module 410may access the local emoticon datastore 412 when searching for one ormore candidate emoticons that are associated with one or more particularcontexts.

Depending on the embodiment, the local emoticon datastore 412 may storeuser-customized emoticons, a user's favorite or preferred emoticons,associations between emoticons stored on the local emoticon and contexts(e.g., subtext or meaning), user preferences with respect to identifyingand suggestion emoticons, user-related information, or recipient-relatedinformation. Additionally, local emoticon datastore 412 may be utilizedto locally cache previously suggested emoticons or suggested emoticonspreviously selected by the user.

In some embodiments, the emoticon search module 410 may utilize theemoticon suggestion server 420 to search for and provide candidateemoticons to the emoticon suggestion client 402. For example, theemoticon suggestion server 420 may search for candidate emoticons on theremote emoticon datastore 424 and provide resulting candidate emoticonsto the emoticon search module 410 on the emoticon suggestion client 402.The emoticon suggestion server 420 may use the emoticon search engine422 to search for candidate emoticons on the remote emoticon datastore424, to retrieve candidate emoticons from the remote emoticon datastore424, and to provide the candidate emoticons to the emoticon searchmodule 410.

The remote emoticon datastore 424 may comprise a library of emoticonsavailable for suggestion to the emoticon suggestion client 402. Theremote emoticon datastore 424 may further comprise associations betweenemoticons in the library and contexts. For certain embodiments, theassociations comprise statistical usage of the given emoticon of theemoticons in the library with the context. Generally, such statisticalusage may reflect the strength of the association between the emoticonand the context.

As noted herein, emoticons stored on the remote emoticon datastore 424may include character emoticons, graphical emoticons, graphicallyanimated emoticons, and emoticons accompanied by sound. For someembodiments, the remote emoticon datastore 424 may further comprise userpreferences, user information or recipient information, which may beutilized the embodiments when identifying emoticons suitable forsuggestion. Those skilled in the art would appreciate that a variety ofemoticon libraries and a variety of association between emoticons andcontexts can be stored on the remote emoticon datastore 424.

The emoticon suggestion module 414 may receive the one or more candidateemoticons located based on an identified context of a segment ofinterest, and present the one or more candidate emoticons to the userfor selection. As noted herein, in some embodiments, the emoticonsuggestion module 414 may use the display module 414 to display forentry selection the one or more candidate emoticons at or near thecurrent position of the input cursor in the input field. As also notedherein, in various embodiments, the emoticon suggestion module 414 mayuse the input module 406 to display for entry selection the one or morecandidate emoticons through a physical input device or a virtual inputdevice.

The emoticon selection module 416 may receive from the user an entryselection for one or more candidate emoticons suggested to the user. Inparticular embodiments, the emoticon selection module 416 may receivethe entry selection for the one or more candidate emoticons through theinput module 404, and the emoticon selection module 416 may enter theone or more selected emoticons into the input field. The emoticonselection module 416 may enter the one or more selected emoticons at thecurrent position of the input cursor. Additionally, the emoticonselection module 416 may enter the one or more selected emoticons intothe input field by replacing segments or segments of interest within theinput field with the one or more selected emoticons. Some embodimentsmay enable the user to set the emoticon selection module 416 (e.g.,using a user preference) such that the module 416 auto-selects suggestedemoticons based on certain guidelines. For instance, the user mayconfigure the emoticon selection module 416 such that the firstsuggested emoticon is selected when an emoticon suggestion is made.

In some embodiments, where associations between emoticons and contextscomprise statistical usage of such emoticons with such contexts, theemoticon selection module 416 may update the statistical usageinformation based on the entry selection received from the user. Inparticular, the emoticon selection module 416 may receive the entryselection of one or more candidate emoticons for a given context, andupdate the statistical usage information stored between the selectedcandidate emoticons and their respective contexts of usage.

Depending on the embodiment, the emoticon selection module 416 mayupdate the statistical usage information on the local emoticon datastore412 or on the remote emoticon datastore 424. For example, if the one ormore candidate emoticons selected through the emoticon selection module416 were provided from the emoticon suggestion server 420, thestatistical usage information for those candidate emoticons will beupdated on the remote emoticon datastore 424. In another example, if theone or more candidate emoticons selected through the emoticon selectionmodule 416 were provided from the local emoticon datastore 412, thestatistical usage information for those candidate emoticons will beupdated on the locate emoticon datastore 412.

FIG. 5 depicts a user-interface 500 of a messaging application, wherethe messaging application utilizes an embodiment. In some embodiments, auser may utilize the user interface 500 to receive and review messagesreceived from other users over online chat, and to compose and transmitmessages to other users over online chat. The messaging application maya client on an instant messaging system, where the messaging applicationis operating on a digital device local to the user, such a smartphonecomputing device or a laptop. The instant messaging system may operateon another digital device such as a server, where the messagingapplication interfaces with the instant messaging system. Depending onthe embodiment, the messaging application may operate on a digitaldevice as a standalone application, or as an applet, plug-in, or scriptoperating through a web browser.

The user interface 500 of the messaging application may comprise aconversation pane 502, a message input field 504, and a send button 514.For some embodiments, the conversation pane 502 may comprise messagessubmitted to the online chat. As such, the conversation pane 502 mayinclude messages submitted to the online chat from others, and messagessubmitted by the user through the user interface 500. The user maysubmit messages to the online chat using the message input field 504. Inparticular, the user may enter a message into the message input field504 and press the send button 514 when the user desires to submit themessage to the online chat.

The message input field 504 may comprise and may be configured toreceive a message prepared by the user for submission to the onlinechat. The message input field 504 may receive one or more segments fromthe user, or may receive one or more emoticons entered in accordancewith some embodiments. The message input field 504 may further comprisean input cursor 516.

As the user prepares a message in the message input field 504, variousembodiments may suggest emoticons for entry at the current position ofthe input cursor 516. For example, as the user writes “It was so muchfun” in the message input field 504, the embodiment may suggest a“smiley face” graphical emoticon 510 for entry into the input field 504based on the embodiment's analysis of the segment of interest 512, whichrecites “so much fun.” The embodiment may suggest the “smiley face”graphical emoticon 510 based on an association between the “smiley face”graphical emoticon 510 and the context of the segment of interest 512.Once the user selects the “smiley face” graphical emoticon 510, theembodiment may enter the “smiley face” graphical emoticon 510 into themessage input field 504.

Likewise, as the user writes “Thanks again for showing me around yourcity” in the message input field 504, the embodiment may suggest aplurality of graphical emoticons 506 based on the context analysis ofthe segment of interest 514. As noted herein, the embodiment may presentthe suggested, graphical emoticons 506 by displaying the graphicalemoticons 506 in a callout box 508 positioned at or near the currentposition of the input cursor 516. Based on analysis of the segment ofinterest 514, which recites “your city,” the embodiment may suggest thegraphical emoticons 506, which relate to cities.

FIG. 6 depicts a user-interface 600 of a messaging application, wherethe messaging application utilizes an embodiment. Like in FIG. 5, a usermay utilize the user interface 600 to receive and review messagesreceived from other users over online chat, and to compose and transmitmessages to other users over online chat The messaging application may aclient on an instant messaging system, where the messaging applicationis operating on a digital device local to the user, such a smartphonecomputing device or a laptop. The instant messaging system may operateon another digital device such as a server, where the messagingapplication interfaces with the instant messaging system. Depending onthe embodiment, the messaging application may operate on a digitaldevice as a standalone application, or as an applet, plug-in, or scriptoperating through a web browser.

The user interface 600 of the messaging application may comprise aconversation pane 602, a message input field 604, an on-screen keyboard606, and a send button 616. For some embodiments, the conversation pane602 may comprise messages submitted to the online chat, includingmessages submitted by the user through the user interface 600. The usermay submit messages to the online chat using the message input field604. Specifically, the user may enter a message into the message inputfield 604 using the on-screen keyboard 606, and may press the sendbutton 616 when the user desires to submit the message to the onlinechat.

The message input field 604 may comprise and may be configured toreceive a message prepared by the user for submission to the onlinechat. The message input field 604 may receive one or more segments fromthe user through the on-screen keyboard 606, or may receive one or moreemoticons as selected through the on-screen keyboard 606. The messageinput field 604 may further comprise an input cursor 610.

The on-screen keyboard 606 may comprise a QWERTY keyboard, a button 624to hide the on-screen keyboard 606 from view (e.g., when not in use),and an emoticon menu 622. Through the emoticon menu 622, the user mayselect one or more emoticons for entry into the message input field 604at the current position of the input cursor 610. The emoticon menu 622may comprise emoticons from a default emoticon library, or a selectionof emoticons suggested by the embodiment. A left select button 618 and aright select button 620 may allow the user to scroll and browse throughthe emoticons available for entry selection through the emoticon menu622.

As the user prepares a message in the message input field 604, variousembodiments may suggest emoticons for entry at the current position ofthe input cursor 610. For instance, as the user writes “I never wouldhave thought the football” in the message input field 604, theembodiment may suggest a “football” graphical emoticon 614 for entryinto the input field 604 based on the embodiment's analysis of thesegment of interest 612, which recites “football.” The embodiment maysuggest the “football” graphical emoticon 614 based on an associationbetween the “football” graphical emoticon 614 and the context of thesegment of interest 612. Once the user selects the “football” graphicalemoticon 614, the embodiment may enter the “football” graphical emoticon614 into the message input field 604.

Similarly, as the user writes “The 50-yard field goal” in the messageinput field 604, the embodiment may suggest a plurality of “field goal”graphical emoticons based on the context analysis of the segment ofinterest 608. In particular, the embodiment may present the “field goal”graphical emoticons for entry selection by displaying the graphicalemoticons in the emoticon menu 622, which may be displayed as part ofthe on-screen keyboard 606.

FIG. 7 is a block diagram of an exemplary digital device 700. Thedigital device 700 comprises a processor 702, a memory system 704, astorage system 706, a communication network interface 708, an I/Ointerface 710, and a display interface 712 communicatively coupled to abus 714. The processor 702 is configured to execute executableinstructions (e.g., programs). In some embodiments, the processor 702comprises circuitry or any processor capable of processing theexecutable instructions.

The memory system 704 is any memory configured to store data. Someexamples of the memory system 704 are storage devices, such as RAM orROM. The memory system 704 can comprise the ram cache. In variousembodiments, data is stored within the memory system 704. The datawithin the memory system 704 may be cleared or ultimately transferred tothe storage system 706.

The storage system 706 is any non-transitory storage configured toretrieve and store data. Some examples of the storage system 706 areflash drives, hard drives, optical drives, and/or magnetic tape. In someembodiments, the digital device 700 includes a memory system 704 in theform of RAM and a storage system 706 in the form of flash data. Both thememory system 704 and the storage system 706 comprise computer readablemedia which may store instructions or programs that are executable by acomputer processor including the processor 702.

The communication network interface (com. network interface) 708 can becoupled to a network (e.g., communication network 110) via the link 716.The communication network interface 708 may support communication overan Ethernet connection, a serial connection, a parallel connection, oran ATA connection, for example. The communication network interface 708may also support wireless communication (e.g., 802.11 alb/gin, WiMax).It will be apparent to those skilled in the art that the communicationnetwork interface 708 can support many wired and wireless standards.

The optional input/output (I/O) interface 710 is any device thatreceives input from the user and output data. The optional displayinterface 712 is any device that is configured to output graphics anddata to a display. In one example, the display interface 712 is agraphics adapter. It will be appreciated that not all digital devices700 comprise either the I/O interface 710 or the display interface 712.

It will be appreciated by those skilled in the art that the hardwareelements of the digital device 700 are not limited to those depicted inFIG. 7. A digital device 700 may comprise more or less hardware elementsthan those depicted. Further, hardware elements may share functionalityand still be within various embodiments described herein. In oneexample, encoding and/or decoding may be performed by the processor 702and/or a co-processor located on a GPU (Le., Nvidia).

The above-described functions and components can be comprised ofinstructions that are stored on a storage medium such as a computerreadable medium. The instructions can be retrieved and executed by aprocessor. Some examples of instructions are software, program code, andfirmware. Some examples of storage medium are memory devices, tape,disks, integrated circuits, and servers. The instructions areoperational when executed by the processor to direct the processor tooperate in accordance with some embodiments. Those skilled in the artare familiar with instructions, processor(s), and storage medium.

Various embodiments are described herein as examples. It will beapparent to those skilled in the art that various modifications may bemade and other embodiments can be used without departing from thebroader scope of the present invention(s). Therefore, these and othervariations upon the exemplary embodiments are intended to be covered bythe present invention(s).

What is claimed is:
 1. A method, comprising: receiving a set of segmentsfrom a text field, wherein the set of segments comprises one or moresegments of interest selected relative to a current position of an inputcursor in the text field; analyzing the set of segments to determine atleast one of a target subtext or a target meaning associated with theset of segments; identifying a set of candidate emoticons, wherein eachcandidate emoticon in the set of candidate emoticons has an associationbetween the candidate emoticon and at least one of the target subtext orthe target meaning, and wherein the set of candidate emoticons comprisesone or more candidate emoticons; presenting the set of candidateemoticons for entry selection at the current position of the inputcursor in a priority order based on a respective strength of theassociation between each emoticon in the set and at least one of thetarget subtext or the target meaning; receiving an entry selection for aset of selected emoticons from the set of candidate emoticons, whereinthe set of selected emoticons comprises one or more selected emoticons;and inserting the set of selected emoticons into the text field at thecurrent position of the input cursor.
 2. The method of claim 1, whereineach association comprises a statistical usage of the candidate emoticonwith at least one of the target subtext or the target meaning.
 3. Themethod of claim 2, wherein the statistical usage is based on usage by asingle user or by a plurality of users.
 4. The method of claim 2,further comprising updating the statistical usage of the candidateemoticons based on the entry selection for the set of selectedemoticons.
 5. The method of claim 1, wherein analyzing the set ofsegments comprises semantic analysis of the set of segments.
 6. Themethod of claim 1, wherein presenting the set of emoticons for entryselection comprises displaying the emoticon, for entry selection, at ornear the current position of the input cursor.
 7. The method of claim 1,wherein presenting the set of candidate emoticons for entry selectioncomprises displaying the set of candidate emoticons, for entryselection, on a physical input device or a virtual input device, whereinthe physical input device and the displayed input interface areconfigured to execute the entry selection.
 8. The method of claim 7,wherein the virtual input device is displayed in close proximity to thetext field.
 9. The method of claim 1, wherein each segment of interestcomprises at least one of a word, a sentence fragment, a sentence, aphrase, or a passage that precedes or follows the current position ofthe input cursor.
 10. The method of claim 1, wherein identifying the setof candidate emoticons is further based on at least a user preference, auser-related information, or a recipient-related information.
 11. Themethod of claim 10, wherein the user-related information includes a userinterest, a user ethnicity, a user religion, a user geographic location,a user age, a user relational status, and a user occupation.
 12. Themethod of claim 10, wherein the recipient-related information includes arecipient's relation to a user, a recipient interest, a recipientethnicity, a recipient religion, a recipient geographic location, arecipient age, a recipient relational status, and a recipientoccupation.
 13. A system, comprising: a processor; a display moduleconfigured to display a text field and one or more segments entered intothe text field; an input module configured to receive segment input froma user and to enter the segment input into the text field at an inputcursor; a segment analysis module configured to: receive a set ofsegments from the text field, wherein the set of segments comprises oneor more segments of interest selected relative to a current position ofthe input cursor in the text field, and use the processor to analyze theset of segments to determine at least one of a target subtext or atarget meaning associated with the set of segments; an emoticon searchmodule configured to identify a set of candidate emoticons, wherein eachcandidate emoticon in the set of candidate emoticons has an associationbetween the candidate emoticon and at least one of the target subtext orthe target meaning, and wherein the set of candidate emoticons comprisesone or more candidate emoticons; an emoticon suggestion moduleconfigured to present the set of candidate emoticons in a priority orderbased on a respective strength of the association between each emoticonin the set and at least one of the target subtext or the target meaningthrough the display module for entry selection at the current positionof the input cursor; and an emoticon selection module configured to:receive from the input module an entry selection for a set of selectedemoticons from the set of candidate emoticons, wherein the set ofselected emoticons comprises one or more selected emoticons, and insertthe set of selected emoticons into the text field at the currentposition of the input cursor.
 14. The system of claim 13, furthercomprising an emoticon datastore comprising one or more emoticonscapable of entry into the text field, and wherein the emoticon searchmodule is further configured to identify the set of candidate emoticonson the emoticon datastore.
 15. The system of claim 13, wherein eachassociation comprises a statistical usage of the candidate emoticon withat least one of the target subtext or the target meaning.
 16. The systemof claim 15, wherein the statistical usage is based on usage by a singleuser or by a plurality of users.
 17. The system of claim 15, wherein theemoticon selection module is further configured to update thestatistical usage of the candidate emoticons based on the entryselection for the set of selected emoticons.
 18. The system of claim 13,wherein analyzing the set of segments comprises semantic analysis of theset of segments.
 19. The system of claim 13, wherein presenting the setof emoticons through the display module for entry selection comprisesdisplaying the emoticon, for entry selection, at or near the currentposition of the input cursor.
 20. The system of claim 13, whereinpresenting the set of candidate emoticons through the display module forentry selection comprises displaying the set of candidate emoticons, forentry selection, through the input module.